package com.gengzp.system.mapper;

import com.gengzp.common.model.versionIteration.entity.VersionIteration;
import com.gengzp.common.model.versionIteration.req.PageVersionIterationReq;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName VersionIterationMapper
 * @Description 版本迭代mapper层接口
 * @Author gengzp
 * @Date 2025/10/11 16:35
 */
public interface VersionIterationMapper {

    /**
     * 插入版本迭代信息
     *
     * @param versionIteration 版本迭代信息
     */
    void insertVersionIteration(VersionIteration versionIteration);

    /**
     * 根据id编辑版本迭代信息
     *
     * @param versionIteration 版本迭代信息
     */
    void updateVersionIterationById(VersionIteration versionIteration);

    /**
     * 根据id删除版本迭代信息
     *
     * @param id id
     */
    void deleteVersionIterationById(@Param("id") Long id);

    /**
     * 根据id查询版本迭代信息
     *
     * @param id id
     * @return 迭代信息
     */
    VersionIteration selectVersionIterationById(@Param("id") Long id);

    /**
     * 根据标题查询版本迭代信息
     *
     * @param title 标题
     * @return 版本迭代信息
     */
    VersionIteration selectVersionIterationByTitle(@Param("title") String title);

    /**
     * 根据版本号查询版本迭代信息
     *
     * @param version 版本号
     * @return 版本迭代信息
     */
    VersionIteration selectVersionIterationByVersion(@Param("version") String version);

    /**
     * 根据分支名称查询版本迭代信息
     *
     * @param branchName 分支名称
     * @return 迭代信息
     */
    VersionIteration selectVersionIterationByBranchName(@Param("branchName") String branchName);

    /**
     * 分页查询版本迭代信息
     *
     * @param req 请求参数
     * @return 迭代信息集合
     */
    List<VersionIteration> pageQueryVersionIteration(PageVersionIterationReq req);

}
